//package com.inspur.edp.bff.designtime.generator.core.rtgen.managergenerator.mgrImplclass.methodgenerators.extendmethodgenerators;
//
//import com.inspur.edp.bff.designtime.generator.core.rtgen.managergenerator.mgrImplclass.FSMgrImplGenContext;
//import com.inspur.edp.bff.spi.AbstractFSManager;
//import com.inspur.edp.caf.generator.method.ClassMethodGeneratorContext;
//import org.eclipse.jdt.core.dom.Type;
//
//import java.lang.reflect.Method;
//
//public class ExtendMethodGenerator extends MgrActionGenerator
//{
//	private FSMgrImplGenContext mgrImplGenContext;
//	private java.lang.reflect.Method methodInfo;
//	private java.lang.Class implType;
//	public ExtendMethodGenerator(FSMgrImplGenContext mgrImplGenContext, Method methodInfo, java.lang.Class implType)
//	{
//		super(implType, methodInfo);
//		this.mgrImplGenContext = mgrImplGenContext;
//		this.methodInfo = methodInfo;
//		this.implType = implType;
//	}
//
//	@Override
//	protected String getGetMgrContextName() {
//		return "getBffContext";
//	}
//
//	@Override
//	protected Type getMgrASTType() {
//		return 	ast.newSimpleType(ast.newName(AbstractFSManager.class.getTypeName()));
//	}
//
//	@Override
//	protected String getSetContextMethodName() {
//		return "setContext";
//	}
//
//	//	@Override
////	protected BlockSyntax BuildMethodBody()
////	{
////		return SyntaxFactory.Block(SyntaxFactory.LocalDeclarationStatement(SyntaxFactory.VariableDeclaration(TypeUtils.GetTypeSyntax(implType)).WithVariables(SyntaxFactory.<VariableDeclaratorSyntax>SingletonSeparatedList(SyntaxFactory.VariableDeclarator(SyntaxFactory.Identifier("mgr")).WithInitializer(SyntaxFactory.EqualsValueClause(SyntaxFactory.ObjectCreationExpression(TypeUtils.GetTypeSyntax(implType)).WithArgumentList(SyntaxFactory.ArgumentList())))))), SyntaxFactory.ExpressionStatement(SyntaxFactory.InvocationExpression(SyntaxFactory.MemberAccessExpression(SyntaxKind.SimpleMemberAccessExpression, SyntaxFactory.BaseExpression(), SyntaxFactory.IdentifierName("SetContext"))).WithArgumentList(SyntaxFactory.ArgumentList(SyntaxFactory.<ArgumentSyntax>SingletonSeparatedList(SyntaxFactory.Argument(SyntaxFactory.IdentifierName("mgr")))))), GetReturnStatment());
////	}
////	private boolean HasReturnValue()
////	{
////		return methodInfo.ReturnType != void.class;
////	}
////
////	private StatementSyntax GetReturnStatment()
////	{
////		if (HasReturnValue())
////		{
////			return GetHasReturnValueReturnStatement();
////		}
////		return GetHasNoReturnValueReturnStatement();
////	}
////
////	private StatementSyntax GetHasNoReturnValueReturnStatement()
////	{
////		return SyntaxFactory.ExpressionStatement(SyntaxFactory.InvocationExpression(SyntaxFactory.MemberAccessExpression(SyntaxKind.SimpleMemberAccessExpression, SyntaxFactory.IdentifierName("mgr"), SyntaxFactory.IdentifierName(methodInfo.getName()))).WithArgumentList(SyntaxFactory.ArgumentList(SyntaxFactory.<ArgumentSyntax>SeparatedList(GetParameterTokens()))));
////	}
////
////	private StatementSyntax GetHasReturnValueReturnStatement()
////	{
////		return SyntaxFactory.ReturnStatement(SyntaxFactory.InvocationExpression(SyntaxFactory.MemberAccessExpression(SyntaxKind.SimpleMemberAccessExpression, SyntaxFactory.IdentifierName("mgr"), SyntaxFactory.IdentifierName(methodInfo.getName()))).WithArgumentList(SyntaxFactory.ArgumentList(SyntaxFactory.<ArgumentSyntax>SeparatedList(GetParameterTokens()))));
////	}
////
////	private java.util.ArrayList<SyntaxNodeOrToken> GetParameterTokens()
////	{
////		java.util.ArrayList<SyntaxNodeOrToken> list = new java.util.ArrayList<SyntaxNodeOrToken>();
//////C# TO JAVA CONVERTER TODO TASK: There is no equivalent to implicit typing in Java:
////		var parameters = methodInfo.GetParameters();
//////C# TO JAVA CONVERTER TODO TASK: There is no equivalent to implicit typing in Java:
////		for (var item : parameters)
////		{
////			if (list.size() > 0)
////			{
////				list.add(SyntaxFactory.Token(SyntaxKind.CommaToken));
////			}
////			list.add(SyntaxFactory.Argument(SyntaxFactory.IdentifierName(item.getName())));
////		}
////
////		return list;
////	}
//
//	@Override
//	protected ClassMethodGeneratorContext createClassMethodInfoContext()
//	{
//		return new ExtendMethodGenContext(mgrImplGenContext, methodInfo, implType);
//	}
//
//}